Di dunia C++, setiap objek memiliki masa hidup— masa hidup objek. Ini menentukan durasi suatu objek menempati ruang dalam memori. Dalam sebuah badan fungsi, perilaku bawaan untuk variabel lokal adalah menjadi otomatis, tetapi kita dapat memerintahkan mereka menjadi statis untuk mengubah takdir mereka.
1. Objek Otomatis
Secara bawaan, variabel lokal adalah objek otomatis. Mereka lahir (diinisialisasi) saat fungsi eksekusi mencapai definisi mereka dan mati (dikembalikan) saat blok selesai. Mereka berada di tumpukan, membuatnya segar untuk setiap panggilan.
2. Objek Statis Lokal
Ketika Anda menggunakan statis kata kunci, Anda menciptakan sebuah objek statis lokal. Ini hanya diinisialisasi sekali—sebelum kali pertama kontrol melewati definisi mereka—dan tetap hidup hingga program berakhir. Hal ini memungkinkan fungsi untuk "mengingat" keadaan tanpa mencemari lingkup global.
3. Perangkap Rekursi
Dalam sebuah fungsi rekursif, setiap putaran rekursi menciptakan instans unik dari objek otomatisnya. Jika rekursi sangat dalam, ini akan menghabiskan ruang tumpukan yang signifikan. Sebaliknya, sebuah statis objek dibagi bersama di setiap tingkat rekursi tersebut.